home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1996 #6 / Amiga Plus CD - 1996 - No. 06.iso / pd / daten / graph3d / graph3d.doc < prev    next >
Text File  |  1996-04-29  |  7KB  |  188 lines

  1.  
  2.  
  3.                                Graph3D  V1.43
  4.                                  (Freeware)
  5.                      Hidden-line 3-dimensional diagrams
  6.  
  7.  
  8.  
  9. 1. Introduction
  10. ---------------
  11.  
  12. The name "Graph3D" is derived from GRAF3D(), a subroutine in DISSPLA, the
  13. great Fortran plotting package for mainframes. In those days of 1991, while
  14. at the university, I had indeed some business to do with DISSPLA. And
  15. because I was impressed with the pretty hidden-line diagrams in the user's
  16. manual, I just had to program something like that myself. The first result
  17. was a BASIC program %-(, but it worked, and at least I managed to port it
  18. to Pascal later. Unfortunately I abused Graph3D to try system programming
  19. tricks, and eventually the source code became such a mess that I lost
  20. interest and let the program rot away in its drawer. It wasn't until last
  21. autumn (1995) that I decided to give it the finishing touch and publish it,
  22. at last.
  23.  
  24. I'm telling all this to explain the following weird collection of features:
  25.  
  26.  - supports CLI and Workbench startup parameters, uses a filerequester,
  27.    but only "req.library"
  28.  - more or less font sensitive, 2.0 look and feel, but is still 1.3
  29.    compatible
  30.  
  31.  
  32.  
  33. 2. Input files
  34. --------------
  35.  
  36. The tables to be plotted are read from ASCII files, the filename extension
  37. should be ".3D". The input format isn't too hard to guess, just look at
  38. some of the examples in the "data/" drawer. I'd recommend "LibHistory.3D",
  39. it is easy to read. Even if you have already deleted all example files, you 
  40. can always create one by saving the built-in demo data. (Load the program, 
  41. then type (right Amiga)-S, and a file "RAM:Demo.3D" will be created.)
  42.  
  43. Oh, one more thing: At the bottom of each file, starting with the keyword
  44. "INFO", is information representing some program settings, like the
  45. precise dimensions of your diagram. These lines are written to every file
  46. that Graph3D saves itself, but are not needed (and not recommended) for
  47. files that you create manually.
  48.  
  49. A special kind of example file is "Function.3D". The file itself is nothing
  50. much to look at (too huge), but the Pascal program that created it is more
  51. interesting: "funcgen.p". It should be no problem to translate it to your
  52. favourite programming language (C, ARexx, BASIC or whatever). That would
  53. make a somewhat awkward but universal function plotter on grids of up to 
  54. 100×100 points.
  55.  
  56.  
  57.  
  58. 3. The Menus
  59. ------------
  60.  
  61. The following is not intended as a complete user's manual, but rather as
  62. some comments on not so obvious features.
  63.  
  64.  
  65. 3.1. Project
  66. ------------
  67.  
  68. The menu items "Open" and "Save as" are ghosted if you don't have the
  69. "req.library" installed. That's not a tragedy, you can still specify input 
  70. files by command line parameter or by extended selection on the Workbench.
  71. It just means that you have to restart the program for each new set of 
  72. data.
  73.  
  74. The functions "Save" and "Save & Quit" are executed immediately and without
  75. safety requesters. All else would be ridiculous, because you cannot change
  76. any data from within the program, you can merely rearrange them.
  77.  
  78. But there are two exceptions where you can damage your input data just by
  79. loading and saving them: If a freshly created file contains a typing error 
  80. (perhaps just a missing line), "Save" will "correct" this error in a way 
  81. you won't necessarily like. And if your file is larger than 100 columns or 
  82. lines of data (unlikely, and you will be warned by a requester), only part
  83. of it will be read, and you shouldn't write these data back to disk, 
  84. either.
  85.  
  86. "Quit" is executed without a safety requester, too. The close gadget has
  87. the same effect.
  88.  
  89.  
  90. 3.2. Data
  91. ---------
  92.  
  93. These functions allow you to regroup your data to obtain better diagrams.
  94. In most cases a text editor would do as well, but not as easy and reliable.
  95.  
  96. "Swap axes" is what mathematicians call "transpose": lines become columns
  97. and vice versa. Data of one "column" are those from subsequent lines in
  98. the input file.
  99.  
  100. To move a line or column you must enter its number and a destination 
  101. number. You have as many attempts as you like to guess the right numbers 
  102. (if you're too lazy to count ;-), the requester doesn't go away until you 
  103. click "OK". Note that entering names in the string gadgets on the right is 
  104. pointless, those names are only displayed for your information.
  105.  
  106.  
  107. 3.3. Display
  108. ------------
  109.  
  110. "Dimensions/Find best" is only for emergencies, when you have entered
  111. hopelessly bad dimensions that mess up the display. Usually you will wish 
  112. to choose more sensible upper and lower bounds than the program can do in 
  113. its simple-mindedness. B.t.w., when first reading a file with no INFO-block
  114. attached, the program executes just this function.
  115.  
  116. "Dimensions/Snapshot" and "Recall" are neat to transfer the dimensions of
  117. one diagram to another, if this emphasizes the statement of a series of
  118. tables. I used this on the files "RSort.3D", "Random.3D" and "Sort.3D".
  119.  
  120. "Fancy texts" may look somewhat ridiculous, as only the texts, not the 
  121. characters themselves are aligned in space. But that's the lesser of two
  122. evils, just try and switch this feature off. Only when you use Graph3D to 
  123. plot functions and have negative numbers as axis titles, you will find that
  124. minus signs are much better to read with horizontally aligned texts.
  125.  
  126. "Draw" and "Halt" do the same as the pencil and the cross out gadget on the
  127. window border. "Halt" is needed mainly to stop automatic refreshs :-).
  128.  
  129. "Auto redraw as ... Sketch" is useful when you notice that you have to use
  130. the cross out gadget much too often (especially on 68000 Amigas). "Auto 
  131. redraw as ... Diagram" is generally better, because it gives you a better
  132. idea of what you're doing. Please note that you can minimize the number of
  133. automatic refreshs by the standard intuition feature "extended menu
  134. selection": Keep the right mouse button pressed and click on additional
  135. menu items at the same time. All selected actions will be executed after
  136. you release the RMB, and a diagram refresh will take place only once after
  137. that, if necessary at all.
  138.  
  139.  
  140. 3.4. Outfit
  141. -----------
  142.  
  143. "Interlace" should be permanently switched on, MedRes diagrams look too
  144. brain-damaged. Well, like I told you: I used Graph3D to practise system
  145. programming, an I built in everything I could think of. (At a time when
  146. there was no such thing like screenmode requesters ... %-)
  147.  
  148. "Colors: Workbench" doesn't seem to do the right thing under Kick 2.0 any
  149. more. You get the default Workbench colors instead of the actual colors.
  150. (I admit that I don't really examine the Workbench screen, but just call
  151. GetPrefs().)
  152.  
  153. "Palette" works only, if you have the "req.library" installed. There's not
  154. much use for this feature anyway, except perhaps forcing a white background
  155. for printer hardcopies.
  156.  
  157. "Font" selection is not yet implemented. But you can get some nice results
  158. using the 2.0 "Font" preferences command. ;-)
  159.  
  160.  
  161.  
  162. 4. The Gadgets
  163. --------------
  164.  
  165. The prop gadgets adjust bearing and elevation of the eye of the beholder.
  166. The magnifying glass and the binoculars are used to zoom in and out. 
  167. (Perhaps you like wide-angle lens effects? But don't exaggerate it. :)
  168.  
  169. As mentioned above, the pencil and cross out gadget are equivalent to the
  170. menu items "Draw" and "Halt".
  171.  
  172.  
  173.  
  174. 5. Credits
  175. ----------
  176.  
  177. Author:
  178.     Wilhelm Noeker
  179.     Hertastr. 8, D-44388 Dortmund
  180.     E-Mail: 0231601698-1@btxgate.de
  181.  
  182. Compiler:
  183.     KICK-Pascal 2.12 by MAXON Computer
  184.  
  185. Icons for the data files by:
  186.     Magnus Enarsson
  187.  
  188.